home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / c / library / dos / menu / kiwi / examples / register.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-04-10  |  4.0 KB  |  265 lines

  1. #include<kiwi_inc.h>
  2. #include<kiwipro.h>
  3. #include<kiwiprin.h>
  4.  
  5. MENU leiste[3]={
  6. "Datei",0,1,"",
  7. "Edit",0,1,"",
  8. "Druck",1,0,"",
  9. };
  10.  
  11.  
  12. MENU datei[1]={
  13. "Beenden",0,1,"",
  14. };
  15.  
  16.  
  17.  
  18. char *compiler[4]={
  19. "Microsoft ",
  20. "Borland   ",
  21. "Zortech   ",
  22. "Sonstige  ",
  23. };
  24.  
  25. char *format[4]={
  26. "360 Kb 5 ¼",
  27. "720 Kb 3 ½",
  28. "1.2 Mb 5 ¼",
  29. "1.4 Mb 3 ¼",
  30. };
  31.  
  32.  
  33. char *zahlung[3]={
  34. "Nachnahme   ",
  35. "Vorkasse    ",
  36. "Scheck      ",
  37. };
  38.  
  39.  
  40.  
  41.  
  42.  
  43. struct user_format{
  44.     char Name1[53];
  45.     char Name2[53];
  46.     char Name3[53];
  47.     char Name4[53];
  48.     char Strasse[53];
  49.     char PLZ[6];
  50.     char Ort[41];
  51.     char Staat[53];
  52.     RADIO compiler;
  53.     RADIO format;
  54.     RADIO zahlung;
  55. }user;
  56.  
  57.  
  58.  
  59.  
  60.  
  61. /************************************************************************/
  62. main()
  63. {
  64. int c,ende=0;
  65. WINDOW win;
  66.  
  67. init_tools();                        /* Initialisier Toolbox        */
  68.  
  69. init_string(user.Name1,sizeof(user));
  70. init_main_menu(leiste,3);
  71. set_cursor_size(CURSOR_WEG);        /* Verstecke Cursor        */
  72.  
  73. do
  74. {
  75.     c=choose_main_menu();
  76.     switch(c){
  77.     case 0: ende=datei_menu();
  78.         break;
  79.  
  80.     case 1:    edit_entry();
  81.         break;
  82.  
  83.     case 2:    print_form();
  84.         break;
  85.  
  86.     }
  87. }while(!ende);
  88.  
  89.  
  90. reset_tools();                        /* Ende des Spasses        */
  91.  
  92. return(0);
  93. }
  94.  
  95.  
  96. int datei_menu()
  97. {
  98. int i=0,c;
  99. WINDOW win=0;
  100.  
  101. c=choose_sub_menu(datei,1,&win);
  102. if(c==0)i=1;
  103.  
  104. close_window(win);
  105.  
  106. return(i);
  107. }
  108.  
  109.  
  110.  
  111. int edit_entry()
  112. {
  113. int result=0;
  114. static WINDOW win=0;
  115.  
  116. win=load_window("REGISTE1.WND");
  117. result=scanf_mask(win,0,"x",    user.Name1,
  118.                 user.Name2,
  119.                 user.Name3,
  120.                 user.Name4,
  121.                 user.Strasse,
  122.                 user.PLZ,
  123.                 user.Ort,
  124.                 user.Staat,
  125.                 &user.compiler,
  126.                 &user.format,
  127.                 &user.zahlung
  128.                 /* Button Abbruch */);
  129.  
  130.  
  131. close_window(win);
  132. leiste[2].aktiv=1;
  133.  
  134. return(0);
  135. }
  136.  
  137.  
  138.  
  139.  
  140. int print_form()
  141. {
  142. int result=0;
  143. static WINDOW win=0;
  144. DATUM datum;
  145.  
  146. if(dialog("Wollen Sie jetzt drucken",AM,AM)==1 && check_drucker()==TRUE)
  147. {
  148.     get_system_date(&datum);
  149.     set_window_display_mode(OFF);
  150.     win=load_window("REGISTE2.WND");
  151.     set_window_display_mode(ON);
  152.     result=print_mask(win,0,"x",    user.Name1,
  153.                 user.Name2,
  154.                 user.Name3,
  155.                 user.Name4,
  156.                 user.Strasse,
  157.                 user.PLZ,
  158.                 user.Ort,
  159.                 user.Staat,
  160.                 compiler[user.compiler],
  161.                 format[user.format],
  162.                 zahlung[user.zahlung],
  163.                 user.Ort,
  164.                 &datum);
  165.  
  166.     print_mode(FETT_EIN);
  167.     print_vs_screen(get_linked_screen(win));
  168.     print_mode(FETT_AUS);
  169.     print_mode(FORM_FEED);
  170.     close_window(win);
  171. }
  172.  
  173. return(0);
  174. }
  175.  
  176. int check_drucker()
  177. {
  178. int result=TRUE;
  179.  
  180. if(check_default_printer_status() & 7)
  181. {
  182.     if(dialog2("Drucker nicht bereit !!\n Wollen Sie weiterdrucken ?","Drucken","Abbrechen",AM,AM)==1)
  183.     {
  184.         kw_wait(100);
  185.         if(check_default_printer_status() & 7)result=FALSE;
  186.     }
  187.     else result=FALSE;
  188. }
  189. return(result);
  190. }
  191.  
  192.  
  193. /* Initialisiere das TOOL Paket            */
  194. int init_tools()
  195. {
  196.  
  197. init_screen(VBLAU,HWEIS,VWEIS,HBLAU,MUSTER,DIREKT);
  198.  
  199. cls();                    /* Loesche Schirm mit zeichen     */
  200. init_window(10);                /* Mache Platz fuer 30 Fenster    */
  201. init_virtuell_screen(10);
  202.  
  203. init_window_manager();
  204. set_winman_mask(WINDOW_MOVE);
  205. set_window_move_mode(MIT_RAND);
  206. set_cursor_size(CURSOR_WEG);        /* Verstecke Cursor        */
  207.  
  208. set_scanf_exit_code(1,F6,1);
  209. set_scanf_exit_code(2,F5,0);
  210. set_scanf(EXTRA_COL_ON);            /* Sonderdarstellung an    3.Farbe    */
  211. init_printer("standard.ksp");        /* init printer         */
  212.  
  213. /* Mouse                    */
  214. set_mouse_cursor_size(CURSOR_VOLL);    /* Setze Mauscursorform        */
  215. init_mouse();                /* Aktiviere Maus wenn da    */
  216. limit_mouse_area(1,1,get_screen_wide(),get_screen_height());
  217.  
  218. set_button_mode(TURBO_MODE);
  219. set_button_mode(SHADOW_ON);
  220. set_button_mode(KLICK_ON);
  221.  
  222. return(0);
  223. }
  224.  
  225.  
  226.  
  227. /* Reinitialisiere das Tool Paket            */
  228. reset_tools()
  229. {
  230. reset_mouse();            /*    Maus weg    */
  231. reset_virtuell_screen();    /*    Screens weg    */
  232. reset_window();            /*     Fenster frei    */
  233. reset_screen();            /*     Bildschirm frei    */
  234. set_video_mode(C_80x25);
  235. check_memory();
  236.  
  237. clear();            /*     Loesche Bildschirm    */
  238. exit(0);
  239.  
  240. return;
  241. }
  242.  
  243.  
  244. int check_window_manager(mode,mx,my)
  245. int mode;
  246. unsigned int mx,my;
  247. {
  248. return(window_manager(mode,mx,my));
  249. }
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.